package com.simple.structure.adapter.sample2;

import com.simple.LogUtil;

/**
 * @author simple
 * @version 1.0
 * @date 2018-12-12 09:15
 * @since 1.0
 */
public class Start {
    public static void main(String[] args) {
        LogUtil.info("对象的适配器");
        // 不能直接使用Source, 需要将其匹配实现
        LogUtil.info("######原来的使用方式######");
        Source source = new Source();
        source.method1("直接使用原类的实例调用需要适配的方法");
        LogUtil.info("######现在的使用方式######");
        Targetable target = new Adapter(source);
        target.method2("将待适配的方法适配后输出");
        // 对象的适配器相比类的适配器更灵活, 可以将多个对象适配成一个, 但同时也要求在使用时手动注入原类的实例
        // 注意, 注入原类实例不是必须, 方法调用也不止 实例.method. 参见SpringMVC中的handlerAdapter
    }
}
